Skip to content

NGF: Add supported images to tech specs and guidance around WAF containers#1948

Open
ciarams87 wants to merge 2 commits into
mainfrom
docs/ngf-image-tables
Open

NGF: Add supported images to tech specs and guidance around WAF containers#1948
ciarams87 wants to merge 2 commits into
mainfrom
docs/ngf-image-tables

Conversation

@ciarams87
Copy link
Copy Markdown
Contributor

Proposed changes

This change enhances the NGF technical specifications to include tables of the images provided through our repositories, and adds references to different sections where appropriate linking back to this section.

This change also adds a section to the WAF configuration guide outlining how the WAF sidecar containers can be optionally customised with different images and other infrastructure settings.

Checklist

Before sharing this pull request, I completed the following checklist:

Footnotes

  1. Potentially sensitive information includes personally identify information (PII), authentication credentials, and live URLs. Refer to the style guide for guidance about placeholder content.

@ciarams87 ciarams87 requested a review from a team as a code owner May 13, 2026 09:26
@ciarams87 ciarams87 requested a review from a team May 13, 2026 09:26
@github-actions github-actions Bot added documentation Improvements or additions to documentation product/ngf Issues related to NGINX Gateway Fabric labels May 13, 2026
@github-actions
Copy link
Copy Markdown

Deploy Preview will be available once build job completes!

Name Link
😎 Deploy Preview https://frontdoor-test-docs.nginx.com/previews/docs/1948/

@sjberman
Copy link
Copy Markdown
Contributor

We still need to update the WAF getting started guide to say that NGF needs to be installed with the nginx image set to nginx-plus-f5waf. Otherwise, isn't the regular NGINX Plus image going to be used if following the installation step in the prerequisites?


### Data plane images with NGINX

_All images include NGINX 1.30.0._
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be a pain to keep up to date.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I'm going to remove it. It actually seems redundant given the tech specs table above


| Name | Base image | Image | Architectures |
|-----------------|----------------------------|--------------------------------------------------------------------|----------------|
| Default image | `nginx:1.30.0-alpine-otel` | `ghcr.io/nginx/nginx-gateway-fabric/nginx:{{< version-ngf >}}` | amd64<br>arm64 |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This as well. Can the version itself be made generic?


NGINX Plus images are available through the F5 Container registry `private-registry.nginx.com`. For setup instructions and authentication details, see [Install NGINX Gateway Fabric with NGINX Plus]({{< ref "/ngf/install/nginx-plus.md" >}}).

_All images include NGINX Plus R36._
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we also have a short code for this like version-ngf

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above, I'm going to remove this. It actually seems redundant given the tech specs table above


When WAF is enabled, NGINX Gateway Fabric deploys two sidecar containers — `waf-enforcer` and `waf-config-mgr` — alongside the main NGINX container. You can customize the image, resource requirements, and additional volume mounts for each container using the `NginxProxy` resource.

These settings are configured under `spec.kubernetes.deployment.wafContainers` (or `spec.kubernetes.daemonSet.wafContainers` for DaemonSet mode). This follows the same infrastructure configuration pattern described in [Configure infrastructure-related settings]({{< ref "/ngf/how-to/data-plane-configuration.md#configure-infrastructure-related-settings" >}}). For the full list of configurable fields, see the `NginxProxy` spec in the [API reference]({{< ref "/ngf/reference/api.md" >}}).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

| This follows the same infrastructure configuration pattern described in [Configure infrastructure-related settings]({{< ref "/ngf/how-to/data-plane-configuration.md#configure-infrastructure-related-settings" >}})

Do we need this? The document clearly says we set it using NginxProxy resources so seems extra

@ciarams87
Copy link
Copy Markdown
Contributor Author

ciarams87 commented May 18, 2026

We still need to update the WAF getting started guide to say that NGF needs to be installed with the nginx image set to nginx-plus-f5waf. Otherwise, isn't the regular NGINX Plus image going to be used if following the installation step in the prerequisites?

@sjberman Our installation docs don't specify the image to use for plus. If the image is not specified, then the WAF one will be used by default if WAF is enabled but no bespoke image was specified

@sjberman
Copy link
Copy Markdown
Contributor

Our installation docs don't specify the image to use for plus. If the image is not specified, then the WAF one will be used by default if WAF is enabled but no bespoke image was specified

@ciarams87 I see --set nginx.image.repository=private-registry.nginx.com/nginx-gateway-fabric/nginx-plus in the plus installation command in the docs. Which will set it in the NginxProxy resource on installation, so I don't think that default value in the code gets used.

@ciarams87
Copy link
Copy Markdown
Contributor Author

Our installation docs don't specify the image to use for plus. If the image is not specified, then the WAF one will be used by default if WAF is enabled but no bespoke image was specified

@ciarams87 I see --set nginx.image.repository=private-registry.nginx.com/nginx-gateway-fabric/nginx-plus in the plus installation command in the docs. Which will set it in the NginxProxy resource on installation, so I don't think that default value in the code gets used.

@sjberman I forgot to toggle to the plus command in the installation docs so I missed it 🤦🏼‍♀️ Yeah I'll explain this in the waf docs so

deployment:
container:
image:
repository: private-registry.nginx.com/nginx-gateway-fabric/nginx-plus-f5waf
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make more sense to just have installation instructions to set this image up front, that way it's in the GatewayClass NginxProxy? (this is assuming that having WAF on all Gateways is the more common use case)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation product/ngf Issues related to NGINX Gateway Fabric

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants